From 41119057dda97549bf498cdf5787b8b98da541c7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Fri, 26 Feb 2016 14:07:49 +0100 Subject: [PATCH] frame: Fix horizontal size request We were adding the border gadget size and the label widget size in any case, but when calculating the width, we want the maximum of those two, not the sum. https://bugzilla.gnome.org/show_bug.cgi?id=760482 --- gtk/gtkframe.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c index 3fcb6417fd..56fb8c9597 100644 --- a/gtk/gtkframe.c +++ b/gtk/gtkframe.c @@ -938,13 +938,23 @@ gtk_frame_measure (GtkCssGadget *gadget, frame = GTK_FRAME (widget); priv = frame->priv; + gtk_css_gadget_get_preferred_size (priv->border_gadget, + orientation, + for_size, + &child_min, + &child_nat, + NULL, NULL); + + *minimum = child_min; + *natural = child_nat; + if (priv->label_widget && gtk_widget_get_visible (priv->label_widget)) { if (orientation == GTK_ORIENTATION_HORIZONTAL) { gtk_widget_get_preferred_width (priv->label_widget, &child_min, &child_nat); - *minimum = child_min; - *natural = child_nat; + *minimum = MAX (child_min, *minimum); + *natural = MAX (child_nat, *natural); } else { @@ -954,25 +964,10 @@ gtk_frame_measure (GtkCssGadget *gadget, else gtk_widget_get_preferred_height (priv->label_widget, &child_min, &child_nat); - *minimum = child_min; - *natural = child_nat; + *minimum += child_min; + *natural += child_nat; } } - else - { - *minimum = 0; - *natural = 0; - } - - gtk_css_gadget_get_preferred_size (priv->border_gadget, - orientation, - for_size, - &child_min, - &child_nat, - NULL, NULL); - - *minimum += child_min; - *natural += child_nat; } static void -- 2.30.2